Technical Field
Embodiments described herein relate to the field of processors and more particularly, to implementing non-shifting reservation stations.
Description of the Related Art
A processor is generally hardware circuitry designed to execute instructions defined by a particular instruction set architecture. While the instructions are being processed, the processor may store the instructions in one or more reservation stations. Each reservation station may be coupled to a respective execution unit and may be configured to schedule instruction operations for execution in the respective execution unit.
Many types of processors include reservation stations for storing operations to be executed. A reservation station holds state information about a number of operations waiting to be issued to the processor's execution unit(s). Most reservation stations are shifting structures, with operations coming into one side (e.g., the bottom) of the reservation station with existing operations shifted up as new operations come into the reservation station. Shifting reservation stations write the same operation multiple times as it shifts through the structure, burning power unnecessarily. This shifting results in a lot of extra writes and wasted power as the operations are moved through the reservation station. For example, if three operations are shifted into the reservation station in a given clock cycle, this results in three writes, plus potentially three more writes as three existing operations are shifted up to higher slots in the reservation station. Further, for a shifting reservation station, the fuller the reservation station becomes, the more power it consumes, since a single operation written into the reservation station can cause an almost full reservation station to shift up multiple entries to make room for the new operation.